package com.hyper_yang.javase.maps;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Hashtable;

/*
 hashMap 和 hashTable
 相同:
    1、都是 Map的实现类，存储的都是键值对
    2、底层都是哈希表
 不同:
    1、线程安全问题:
        hashTable 线程安全,效率低;
        hashMap 线程不安全,效率高
    2、初始化时机不同:
        hashTable 创建对象时，初始化空间长度为 11
        hashMap 第一次存数据时，初始化空间长度为 16
    3、对 null值的处理:
        hashTable 不允许 key或 value为 null 【 NullPointerException 】
        hashMap 允许 key和 value为 null，但只能有一个 null的 key,存储到下标 0的位置
 */
public class TryHashTable {

    @Test
    public void test01(){
        HashMap hashMap = new HashMap<>();
        hashMap.put(null,null);
        System.out.println(hashMap.get(null));
    }

    @Test
    public void test02(){ // sync
        Hashtable hashTable = new Hashtable<>();
        hashTable.put(null,null);
    }
}
